** Replication code for: "The Soviet Legacy and the Global South’s Reactions to Russian Invasion of Ukraine in the UN General Assembly". Journal of Conflict Resolutoin. 

**  -- Qingjie Zeng, Fudan University


** Open the file called "JCR Soviet legacy and UN vote dataset.dta". This file will be used for the vast majority of the analysis. 

** First, group variables into macros that are essential for running analyses on consistent sets of variables. The "$xlist" macro is the set of Cold-War-era controal variables, and the "ylist" macro is the set of contemporary control variables. 


global xlist coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961

global ylist export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 FDIGDP1021 lngdp21 lngdppc21


** -----------Tables and figures in the main text ---------------------------------------

** The following codes produce Table 2: Soviet aid and support for Russia in UNGA votings. 

quietly reghdfe support_russia soviet_aid, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m1 

quietly reghdfe support_russia soviet_aid $xlist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m2 

quietly reghdfe support_russia soviet_aid $xlist $ylist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

quietly reghdfe support_russia soviet_armshare, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m4 

quietly reghdfe support_russia soviet_armshare $xlist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m5

quietly reghdfe support_russia soviet_armshare $xlist $ylist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m6


#delimit;
esttab m1 m2 m3 m4 m5 m6, 
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons) order(soviet_aid soviet_armshare $xlist $ylist)
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table 2: Soviet aid and support for Russia in UNGA votings")
stats(regionfe resofe r2_a N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear

** The following codes produces the left panel of Figure 1: The effect of Soviet aid on support for Russia in UNGA votings: by resolution.


quietly reg support_russia soviet_aid $xlist  i.region if(resolution==1), robust

estimates store model1

quietly reg support_russia soviet_aid $xlist i.region if(resolution==2), robust

estimates store model2

quietly reg support_russia soviet_aid $xlist  i.region if(resolution==3), robust

estimates store model3

quietly reg support_russia soviet_aid $xlist  i.region if(resolution==4), robust

estimates store model4

quietly reg support_russia soviet_aid $xlist  i.region if(resolution==5), robust

estimates store model5

quietly reg support_russia soviet_aid $xlist  i.region if(resolution==6), robust

estimates store model6

coefplot (model1, mcolor(black) msymbol(O) ciopts(lpattern(solid) color(black)) label(Condemn invasion)) ///
         (model2, mcolor(black) msymbol(D) ciopts(lpattern(solid) color(black)) label(Humanitarian conseqeunces) )  ///
         (model3, mcolor(black) msymbol(T) ciopts(lpattern(solid) color(black)) label(Suspend Russia from UNHRC) ) /// 
         (model4, mcolor(black) msymbol(S) ciopts(lpattern(solid) color(black)) label(Condemn annexation) ) ///
         (model5, mcolor(black) msymbol(X) ciopts(lpattern(solid) color(black)) label(Demand reparation for damage)) ///
         (model6, mcolor(black) msymbol(Oh) ciopts(lpattern(solid) color(black)) label(Demand end of war)), keep(soviet_aid)  xline(0)

** The following codes produces the right panel of Figure 1: The effect of Soviet aid on support for Russia in UNGA votings: by resolution.


quietly reg support_russia soviet_armshare $xlist i.region if(resolution==1), robust

estimates store model1

quietly reg support_russia soviet_armshare $xlist  i.region if(resolution==2), robust

estimates store model2

quietly reg support_russia soviet_armshare $xlist  i.region if(resolution==3), robust

estimates store model3

quietly reg support_russia soviet_armshare $xlist i.region if(resolution==4), robust

estimates store model4

quietly reg support_russia soviet_armshare $xlist  i.region if(resolution==5), robust

estimates store model5

quietly reg support_russia soviet_armshare $xlist  i.region if(resolution==6), robust

estimates store model6

coefplot (model1, mcolor(black) msymbol(O) ciopts(lpattern(solid) color(black)) label(Condemn invasion)) ///
         (model2, mcolor(black) msymbol(D) ciopts(lpattern(solid) color(black)) label(Humanitarian conseqeunces) )  ///
         (model3, mcolor(black) msymbol(T) ciopts(lpattern(solid) color(black)) label(Suspend Russia from UNHRC) ) /// 
         (model4, mcolor(black) msymbol(S) ciopts(lpattern(solid) color(black)) label(Condemn annexation) ) ///
         (model5, mcolor(black) msymbol(X) ciopts(lpattern(solid) color(black)) label(Demand reparation for damage)) ///
         (model6, mcolor(black) msymbol(Oh) ciopts(lpattern(solid) color(black)) label(Demand end of war)), keep(soviet_armshare)  xline(0) ciopts(recast(rcap))


** The following codes produce Table 4: The effect of Soviet-era aid on contemporary economic and military ties  


quietly reg import_share_1021  soviet_aid lndiscapRUS lndiscapUSA lngdp21 lngdppc21 i.region if(resolution==1), vce(robust)
estimates store m1
estadd local regionfe YES

quietly reg export_share_1021 soviet_aid  lndiscapRUS lndiscapUSA  lngdp21 lngdppc21 i.region if(resolution==1), vce(robust)
estimates store m2
estadd local regionfe YES

quietly reg faid_1115  soviet_aid  lndiscapRUS lndiscapUSA  lngdp21 lngdppc21 i.region if(resolution==1), vce(robust)
estimates store m3
estadd local regionfe YES

quietly reg FDIGDP1021  soviet_aid  lndiscapRUS lndiscapUSA  lngdp21 lngdppc21 i.region if(resolution==1), vce(robust)
estimates store m4
estadd local regionfe YES

quietly reg russia_armshare_1021 soviet_armshare  lndiscapRUS lndiscapUSA lngdp21 lngdppc21 i.region if(resolution==1), vce(robust)
estimates store m5
estadd local regionfe YES

#delimit;
esttab m1 m2 m3 m4 m5, 
cells(b(star fmt(4)) se(par fmt(3))) label order(soviet_aid soviet_armshare lndiscapRUS lndiscapUSA lngdp21 lngdppc21) keep(soviet_aid soviet_armshare lndiscapRUS lndiscapUSA lngdp21 lngdppc21)
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table 4: The effect of Soviet-era aid on contemporary economic and military ties")
stats(regionfe r2_a N, fmt(0 3 0) labels("Region FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear


** Open the file called "JCR Attitudes towards Russia.dta"

**The following codes produce Table 5: African citizens’ attitudes towards Russia


*** The effect of living in a major Soviet aid recipient on attitudes towards Russia (very positive)

quietly reg Russia_affinity majoraid age age2 male edu poor urban, vce(robust)

estimates store m1

quietly reg Russia_affinity  i.majoraid##i.older50 age age2 male edu poor urban, vce(robust)

estimates store m2

quietly reg Russia_affinity  i.majoraid##i.older60 age age2 male edu poor urban, vce(robust)

estimates store m3

quietly reg Russia_affinity  i.majoraid##i.college age age2 male edu poor urban, vce(robust)

estimates store m4

quietly reg Russia_affinity majoraid age age2 male edu poor urban if old_elite==1, vce(robust)

estimates store m5

	
#delimit;
esttab m1 m2 m3 m4 m5,
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons)
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table 1: The determinants of support for Russia")
stats(r2 N, fmt(3 0) labels("R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear



** -----------Tables in the Online Appendix ---------------------------------------

* Open the file called "JCR Soviet legacy and UN vote dataset.dta".

** The following codes produce Table A1: Descriptive statistics for the main variables. 

asdoc summarize support_russia soviet_aid soviet_armshare coldwar_ideo lndiscapRUS lndiscapUSA ///
resourcegdp NAM1961 export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
FDIGDP1021 lngdp21 lngdppc21, label 

** The following codes produce Table A3: Soviet treaty partners and support for Russia in UNGA votings

quietly reghdfe support_russia soviet_treaty, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m1 

quietly reghdfe support_russia soviet_treaty $xlist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m2 

quietly reghdfe support_russia soviet_treaty $xlist $ylist, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

#delimit;
esttab m1 m2 m3, 
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons) order(soviet_treaty $xlist $ylist)
legend note("Note: This table shows the effect of being a Soviet treaty partner on the likelihood of supporting Russia in UNGA votings. Standard errors are clustered at the country level.")
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A3 Soviet treaty partners and support for Russia in UNGA votings")
stats(regionfe resofe r2_a N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear


** The following codes produce Table A4: Deleting observations of absence


quietly reghdfe support_russia soviet_aid if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m1 

quietly reghdfe support_russia soviet_aid $xlist if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m2 

quietly reghdfe support_russia soviet_aid $xlist $ylist if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

quietly reghdfe support_russia soviet_armshare if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m4 

quietly reghdfe support_russia soviet_armshare $xlist if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m5

quietly reghdfe support_russia soviet_armshare $xlist $ylist if absent==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m6


#delimit;
esttab m1 m2 m3 m4 m5 m6, 
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons) order(soviet_aid soviet_armshare $xlist $ylist)
legend note("This table replicates the baseline analysis by excluding observations in which the member states were absent. Standard errors are clustered at the country level. ")
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A4: Deleting observations of absence")
stats(regionfe resofe r2_a N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear


** The following codes produce Table A5：Using subsamples of Africa, Asia and South America


quietly reghdfe support_russia soviet_aid $xlist if region==1 | region==2 | region==3 | region==4 | region==5, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m1 

quietly reghdfe support_russia soviet_armshare $xlist if region==1 | region==2 | region==3 | region==4 | region==5, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m2

quietly reghdfe support_russia soviet_aid $xlist if region==7 | region==8 | region==9 | region==10, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

quietly reghdfe support_russia soviet_armshare $xlist if region==7 | region==8 | region==9 | region==10, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m4

quietly reghdfe support_russia soviet_aid $xlist if region==11 | region==12 | region==6, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m5

quietly reghdfe support_russia soviet_armshare $xlist if region==11 | region==12 | region==6, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m6


#delimit;
esttab m1 m2 m3 m4 m5 m6,
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons) order(soviet_aid soviet_armshare $xlist)
legend note("Note: This table replicates the baseline analysis by using the African, Asian, and Latin American subsamples. Standard errors are clustered at the country level. ")
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A5：Using subsamples of Africa, Asia and South America")
stats(regionfe resofe r2_a N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear

** The following codes produce Table A6: Ordered logit models


quietly ologit support_ord soviet_aid $xlist , vce(robust)
estadd local regionfe YES
estadd local resofe YES
estimates store m1

quietly ologit support_ord soviet_aid $xlist $ylist, vce(robust)
estadd local regionfe YES
estadd local resofe YES
estimates store m2

quietly ologit support_ord soviet_armshare $xlist, vce(robust)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

quietly ologit support_ord soviet_armshare $xlist $ylist, vce(robust)
estadd local regionfe YES
estadd local resofe YES
estimates store m4

#delimit;
esttab m1 m2 m3 m4,
cells(b(star fmt(4)) se(par fmt(3))) label keep(soviet_aid soviet_armshare $xlist $ylist) order(soviet_aid soviet_armshare $xlist $ylist)
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A6: Ordered logit models")
legend note("Note: This table replicates the baseline analysis by using ordered logit models. Robust standard errors are shown.")
stats(regionfe resofe pr2 N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear

** The following codes produce Table A7: Excluding countries with extreme values of aid


quietly reghdfe support_russia soviet_aid $xlist if top5_recipient==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m1 

quietly reghdfe support_russia soviet_aid $xlist if top3_recipient==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m2

quietly reghdfe support_russia soviet_armshare  $xlist if top5_armrecip==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m3

quietly reghdfe support_russia soviet_armshare  $xlist if top3_armrecip==0, absorb(region resolution) cluster(state)
estadd local regionfe YES
estadd local resofe YES
estimates store m4


#delimit;
esttab m1 m2 m3 m4, 
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons) order(soviet_aid soviet_armshare $xlist)
legend note("This table repeats the baseline analysis by excluding the states that received extreme values of Soviet aid")
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A7: Excluding countries with extreme values of aid")
stats(regionfe resofe r2_a N, fmt(0 0 3 0) labels("Region FE" "Resolution FE" "Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear

** Open the file called "JCR Attitudes towards Russia.dta"

** The following codes produce Table A8: African citizens' attitudes towards Russia--The impact of media consumption

quietly reg Russia_affinity  i.majoraid##c.radio age age2 male edu poor urban, vce(robust)

estimates store m1

quietly reg Russia_affinity  i.majoraid##c.tv age age2 male edu poor urban, vce(robust)

estimates store m2

quietly reg Russia_affinity  i.majoraid##c.papers age age2 male edu poor urban, vce(robust)

estimates store m3

quietly reg Russia_affinity  i.majoraid##c.internet age age2 male edu poor urban, vce(robust)

estimates store m4

quietly reg Russia_affinity  i.majoraid##c.soc_media age age2 male edu poor urban, vce(robust)

estimates store m5
	
#delimit;
esttab m1 m2 m3 m4 m5, 
cells(b(star fmt(4)) se(par fmt(3))) label drop(_cons)
starlevels(* 0.10 ** 0.05 *** 0.01) 
title("Table A8: African citizens' attitudes towards Russia--The impact of media consumption")
legend note("Note: This table examines whether the effect of living in a Soviet aid recipient states depends on the respondents' media consumption.")
stats(r2_a N, fmt(0 0 3 0) labels("Adjusted R-squared" "Observation")) varlabels(_cons Constant);
#delimit cr
estimate clear

** Open the file called "JCR Soviet legacy and UN vote dataset.dta".
** The following commands generate a series of variables indicating states the received the most amount of Soviet aid. You don't need to run these commmands as these variables are already in the dataset. But you can see from these commands which states are included. 

* generate a variable that indicates the 30 top states that received Soviet economic aid

gen top30_recipient=(statename=="Mongolia" | statename=="Afghanistan" | statename=="Guinea" | statename=="India" | statename=="North Korea" | statename=="Syria" | statename=="Vietnam" | statename=="Cuba" | statename=="Egypt" | statename=="Algeria" | statename=="Bangladesh" | statename=="Iraq" | statename=="Angola" | statename=="Laos" | statename=="Yemen" | statename=="Turkey" | statename=="Nigeria" | statename=="Iran" | statename=="Mali" | statename=="Ethiopia" | statename=="Pakistan" | statename=="Congo" | statename=="Somalia" | statename=="Sudan" | statename=="Cambodia" | statename=="Uganda" | statename=="Tunisia" | statename=="Sri Lanka" | statename=="Zambia" | statename=="Ghana")

label variable top30_recipient "Top 30 Recipients of Soviet economic aid"

* generate a variable that indicates the 30 top states that received Soviet military aid


gen top30_armrecip=(statename=="Yemen" | statename=="Afghanistan" | statename=="Mongolia" | statename=="Cuba" | statename=="Angola" | statename=="Syria" | statename=="Algeria" | statename=="Vietnam" | statename=="Mozambique" | statename=="Mali" | statename=="Nicaragua" | statename=="Ethiopia" | statename=="China" | statename=="Guinea-Bissau" | statename=="Guinea" | statename=="North Korea" | statename=="Libya" | statename=="Laos" | statename=="Iraq" | statename=="India" | statename=="Somalia" | statename=="Congo" | statename=="Uganda" | statename=="Madagascar" | statename=="Benin" | statename=="Egypt" | statename=="Equatorial Guinea" | statename=="Zambia" | statename=="Cambodia" | statename=="Tanzania")

label variable top30_armrecip "Top 30 Recipients of Soviet arm transfer"

* generate a variable that indicates the 25 top states that received Soviet economic aid

gen top25_recipient=(statename=="Mongolia" | statename=="Afghanistan" | statename=="Guinea" | statename=="India" | statename=="North Korea" | statename=="Syria" | statename=="Vietnam" | statename=="Cuba" | statename=="Egypt" | statename=="Algeria" | statename=="Bangladesh" | statename=="Iraq" | statename=="Angola" | statename=="Laos" | statename=="Yemen" | statename=="Turkey" | statename=="Nigeria" | statename=="Iran" | statename=="Mali" | statename=="Ethiopia" | statename=="Pakistan" | statename=="Congo" | statename=="Somalia" | statename=="Sudan" | statename=="Cambodia")

label variable top25_recipient "Top 30 Recipients of Soviet economic aid"

* generate a variable that indicates the 25 top states that received Soviet military aid

gen top25_armrecip=(statename=="Yemen" | statename=="Afghanistan" | statename=="Mongolia" | statename=="Cuba" | statename=="Angola" | statename=="Syria" | statename=="Algeria" | statename=="Vietnam" | statename=="Mozambique" | statename=="Mali" | statename=="Nicaragua" | statename=="Ethiopia" | statename=="China" | statename=="Guinea-Bissau" | statename=="Guinea" | statename=="North Korea" | statename=="Libya" | statename=="Laos" | statename=="Iraq" | statename=="India" | statename=="Somalia" | statename=="Congo" | statename=="Uganda" | statename=="Madagascar" | statename=="Benin")

label variable top25_armrecip "Top 30 Recipients of Soviet arm transfer"

* generate a variable that indicates the 35 top states that received Soviet economic aid

gen top35_recipient=(statename=="Mongolia" | statename=="Afghanistan" | statename=="Guinea" | statename=="India" | statename=="North Korea" | statename=="Syria" | statename=="Vietnam" | statename=="Cuba" | statename=="Egypt" | statename=="Algeria" | statename=="Bangladesh" | statename=="Iraq" | statename=="Angola" | statename=="Laos" | statename=="Yemen" | statename=="Turkey" | statename=="Nigeria" | statename=="Iran" | statename=="Mali" | statename=="Ethiopia" | statename=="Pakistan" | statename=="Congo" | statename=="Somalia" | statename=="Sudan" | statename=="Cambodia" | statename=="Uganda" | statename=="Tunisia" | statename=="Sri Lanka" | statename=="Zambia" | statename=="Ghana" | statename=="Morocco" | statename=="Indonesia" | statename=="Mozambique" | statename=="Nicaragua" | statename=="China")

label variable top35_recipient "Top 35 Recipients of Soviet economic aid"

* generate a variable that indicates the 35 top states that received Soviet military aid


gen top35_armrecip=(statename=="Yemen" | statename=="Afghanistan" | statename=="Mongolia" | statename=="Cuba" | statename=="Angola" | statename=="Syria" | statename=="Algeria" | statename=="Vietnam" | statename=="Mozambique" | statename=="Mali" | statename=="Nicaragua" | statename=="Ethiopia" | statename=="China" | statename=="Guinea-Bissau" | statename=="Guinea" | statename=="North Korea" | statename=="Libya" | statename=="Laos" | statename=="Iraq" | statename=="India" | statename=="Somalia" | statename=="Congo" | statename=="Uganda" | statename=="Madagascar" | statename=="Benin" | statename=="Egypt" | statename=="Equatorial Guinea" | statename=="Zambia" | statename=="Cambodia" | statename=="Tanzania" | statename=="Sudan" | statename=="Guyana" | statename=="Indonesia" | statename=="Peru" | statename=="Central African Republic ")

label variable top35_armrecip "Top 35 Recipients of Soviet arm transfer"


** The following codes produce Table A9: Propensity score matching: top 30 economic aid recipients as treated units

capture erase PSM_Results.doc

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_recipient ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results.doc) append ///
        title(Resolution_`r')
}

asdoc, text(Note: Estimates are obtained using propensity score matching implemented with the psmatch2 command in Stata. The outcome variable is a binary indicator of whether a state voted in favor of Russia in the UN resolution. The propensity score is estimated using a probit model based on covariates. Treated and control units are matched based on their estimated propensity scores within the region of common support (Treated on/off support: 13 / 16; Control on/off support: 72 / 0). The reported standard errors are Abadie–Imbens standard errors, which are robust to heteroskedasticity The ATT (Average Treatment effect on the Treated) represents the mean difference in the outcome variable between treated units and their matched controls.  ///
    save(PSM_Results.doc) append

** The following codes produce Table A10: Balance Test

	
    pstest coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
    export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
    FDIGDP1021 lngdp21 lngdppc21

	
** The following codes produce Table A11: Propensity score matching: top 30 economic aid recipients as treated units
	
capture erase PSM_Results2.doc

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_armrecip ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results2.doc) append ///
        title(Resolution_`r')
}

asdoc, text(Note: Estimates are obtained using propensity score matching implemented with the psmatch2 command in Stata. The outcome variable is a binary indicator of whether a state voted in favor of Russia in the UN resolution. The propensity score is estimated using a probit model based on covariates. Treated and control units are matched based on their estimated propensity scores within the region of common support (Treated on/off support: 22 / 6; Control on/off support: 73 / 0.). The reported standard errors are Abadie–Imbens standard errors, which are robust to heteroskedasticity The ATT (Average Treatment effect on the Treated) represents the mean difference in the outcome variable between treated units and their matched controls.  ///
    save(PSM_Results.doc) append
 
 
 ** Table A12 is manually assembled from the following codes: 

 ** Column 1 of Table A12
 
forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_recipient ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly radius caliper(0.05) common ///
        save(radius_Results.doc) append ///
        title(Resolution_`r')
}


* Column 2 of Table A12


forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_recipient ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly kernel common ///
        save(kernel_results.doc) append ///
        title(Resolution_`r')
}

* Column 3 of Table A12

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_armrecip ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly radius caliper(0.05) common ///
        save(radius_Results_mil.doc) append ///
        title(Resolution_`r')
}

* Column 4 of Table A12

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top30_armrecip ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly kernel common ///
        save(kernel_results_mil.doc) append ///
        title(Resolution_`r')
}



 ** Table A13 is manually assembled from the following codes: 

 ** Column 1 of Table A13
  
forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top25_recipient ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results_25.doc) append ///
        title(Resolution_`r')
}


 ** Column 2 of Table A13

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top25_armrecip ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results_mil25.doc) append ///
        title(Resolution_`r')
}

	
 ** Column 3 of Table A13


forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top35_recipient ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results_35.doc) append ///
        title(Resolution_`r')
}

 ** Column 4 of Table A13

forvalues r = 1/6 {
    di "=== Running psmatch2 for resolution `r' ==="

    asdoc psmatch2 top35_armrecip ///
        coldwar_ideo lndiscapRUS lndiscapUSA resourcegdp NAM1961 ///
        export_share_1021 import_share_1021 faid_1115 russia_armshare_1021 ///
        FDIGDP1021 lngdp21 lngdppc21 if resolution==`r', ///
        outcome(support_russia) quietly common ///
        save(PSM_Results_mil35.doc) append ///
        title(Resolution_`r')
}

 
